In a distributed multiplayer game, end users are often geographically distributed, with each end user using an associated game system. In such games, end users control players and, optionally, associated entities, within the game space. The players/entities may include any virtual objects existing within the game space. During the course of the game, players/entities move within the game space. The portion of the game space in which each player moves is displayed to the associated end user controlling the player. In most multiplayer games, all players are capable of moving within the game space simultaneously. In order to ensure accurate and fair play, each end user must be able to see a continuously updated position of each player/entity within the portion of the game space occupied by the player controlled by that end user.
Since continuous exchange of information between game systems is almost impossible, a technique known as dead-reckoning is commonly used to exchange player/entity movement information among game systems. Using dead-reckoning, each game system sends player/entity position and movement information (with respect to that player, and entities controlled by that player) to every other game system using dead-reckoning vectors. A dead-reckoning vector includes information about the position and movement of a player/entity within the game space on the system from which the dead-reckoning vector is sent. The exchanged dead-reckoning vectors are processed by systems which receive the dead-reckoning vectors for rendering the player/entity in the game space on the respective systems which receive the dead-reckoning vectors.
In existing game systems (i.e., distributed multiplayer games limited to a small number of players in close proximity), network delay may be assumed to be negligible. Disadvantageously, however, even if network delay is negligible, due to use of dead-reckoning vectors to project player/entity trajectory, by the time a dead-reckoning vector is received and rendered by a receiving game system, the original trajectory of the player/entity at the sending game system may have already changed. As such, in physical time, there is a deviation at the receiving game system between the real trajectory (denoted as a real path) and the rendered trajectory (denoted as the placed path). This deviation is unavoidable unless every movement for a player/entity is continuously sent to every game system.
In emerging games (i.e., distributed multiplayer games involving a large number of players interacting over large distances using the Internet), network delay is not negligible, resulting in a deviation between the placed path and rendering on the receiving game system of the player/entity associated with the dead-reckoning vector exported by the sending game system (denoted as an exported path). The path of a player/entity that a sending game system expects receiving game systems to follow in physical time may not be followed in physical time due to non-negligible network delay. In other words, placed paths and associated exported paths may deviate in physical time, thereby creating game-playing inaccuracies. This deviation between placed paths and associated exported paths may be denoted as an export error.
In distributed multiplayer games, game playing accuracy is measured according to the game playing experience as observed by end users in terms of accurate placement and movement of players/entities on distributed game systems (i.e., maximum game playing accuracy is achieved in the absence of network delay). According to such game playing accuracy, in physical time, end users should experience identical movements of players/entities within the game space. In one embodiment, this notion of game playing accuracy may be defined using the following player/entity trajectories: (1) the trajectory of the player/entity at the receiving game system before the dead-reckoning vector is received and (2) the trajectory of the player/entity at the receiving game system after the dead-reckoning vector is received.
An export error associated with movement of the player/entity at the receiving game system before the dead-reckoning vector is received at the receiving game system is denoted as a before export error. An export error associated with movement of the player/entity at the receiving game system after the dead-reckoning vector is received at the receiving game system is denoted as an after export error. Both before export errors and after export errors are due to a deviation between the exported path on the sending game system and the placed path on the receiving game system (i.e., due to network delay in propagating dead-reckoning vectors from sending game systems to receiving game systems). In existing distributed multiplayer games, receiving game systems experience both before export errors and after export errors, thereby resulting in game-playing inaccuracies.